<?php
class Back_Model_News extends Jnd_Model_Abstract
{
    protected $id = 0;
    protected $redacteur = 0;
    protected $titre = "";
    protected $contenu = "";
    protected $creationDate;
    protected $creationUtilisateur;
    protected $modificationUtilisateur;
    protected $modificationDate;
    protected $_commentaires = array();
    protected $_newsCoupee = false;

    /**
     *
     * @see Jnd_Model_Abstract::getId()
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     *
     * @see Jnd_Model_Abstract::setId()
     */
    public function setId( $id )
    {
        $this->id = $id;
    }

    public function getContenuLimite( $limite = null )
    {
        if (is_null($limite)) {
            $limiteChamp = Osml_Global_Constantes::OSML_CONFIG_HOME_NEWS_LONGUEUR;
            $longueurMaxNews = Back_Model_Config::recuperationValeurParCle($limiteChamp, "valeur");
            
            $contenu = $this->getContenu();
            if (strlen($contenu) > $longueurMaxNews) {
                // Il faut couper la news
                $contenuCoupe = substr($contenu, 0, $longueurMaxNews);
                $dernierEspace = strrpos($contenuCoupe, ' ');
                $contenuLimite = substr($contenuCoupe, 0, $dernierEspace);
                $this->_newsCoupee = true;
                return $contenuLimite;
            } else {
                return $contenu;
            }
        }
    }

    public function getLienNewsTexte()
    {
        if ($this->_newsCoupee) {
            return __("Lire la suite");
        } else {
            return __("Ouvrir la news");
        }
    }

    public function getCommentaires()
    {
        if (empty($this->_commentaires)) {
            $this->_commentaires = Front_Model_NewsCommentaires::recupererCommentaires($this->getId());
        }
        return $this->_commentaires;
    }

    /**
     * On surcharge la suppression afin de supprimer les commentaire
     * 
     * @see Jnd_Model_Abstract::supprimer()
     */
    public function supprimer( $id )
    {
        if ($this->getId() == 0) {
            $this->setId($id);
        }
        $commentaires = $this->getCommentaires();
        foreach ($commentaires as $commentaire) {
            $commentaire->supprimer($commentaire->getId());
        }
        parent::supprimer($id);
    }
}
